package test;

import org.junit.Test;

public class 有序数组中的众数 {
    public static void main(String[] args) {
        int[] ints = {1,2,2,2,3,3,4,4};
//        int[] ints = {1};
        test2(ints);
    }

//    @Test
    public static void test1(int[] ints){
        int preValue = Integer.MAX_VALUE;//上一个元素
        int preCnt = 0;//当前重复次数
        int ansCnt = 0;//当前重复最多的次数
        int ans = 0;//重复最多次数的元素（众数）
        for (int te : ints) {
            if (preValue == te){//
                preCnt++;
            }else {
                preValue = te;
                preCnt = 1;
            }
            if (preCnt > ansCnt){
                ansCnt = preCnt;
                ans = preValue;
            }
        }
        System.out.println(ans);
    }


    public static void test2(int[] ints){
        int preValue = Integer.MIN_VALUE;
        int preCnt = 0;
        int anCnt = 0;
        int ans = 0;
        for (int te : ints){
            if (te == preValue){
                preCnt++;
            }else {
                preValue = te;
                preCnt = 1;
            }
            if (preCnt > anCnt){
                anCnt = preCnt;
                ans = preValue;
            }
        }
        System.out.println(ans);
    }
}
